Design Issues and Challenges of Distributed Systesm